Hellow,
ich habe ein sehr nerviges Problemchen, wie am Threadthema bereits erkennbar, handelt es sich um ein Problem mit OpenStreetMaps / OpenLayers.. mal wieder. Ich arbeite gerade mit PhP auf Serverseite ( derzeit mit XAMPP simuliert ) und Javascript.
Ich möchte gerne auf einem bereits bestehenden map-Layer einen weiteren Layer für POIs ( Points of Interest ) auflegen, auf welchem ich über Ajax selbige projeziere. Ich habe diesbezüglich 2 Tutorials gefunden:
1. Openlayers POI layer example - OpenStreetMap Wiki
2. OpenLayers Dynamic POI - OpenStreetMap Wiki
Zweiteres ist vermutlich eher, was ich suche ( der Screenshot deutet zumindest das richtige an ), aber ich steige dort beim besten Willen nicht durch und die Links führen auch ins Nirvana :/.
Ersteres habe ich soweit einmal probiert und es hat geklappt. Dabei wird txt-file geschrieben, in welches die Punkte nacheinander in bestimmter Reihenfolge ihrer Angaben ( Längen / Breitengrad,Bild,etc... ) eingetragen werden und dann von der Funktion ausgelesen und bearbeitet werden. Ich habe das ganze mal mit Ajax "dynamisch" gemacht, aber hmmmm:
Meine Probleme an der Stelle sind 2erlei:
Erstens möchte ich eigentlich ungern immer eine txt-Datei erstellen müssen wo ich den Kram reinlade. Ich habe schonmal versucht, die Textdatei zu "simulieren", indem ich einen großen String gebaut habe, der mMn die Restriktionen für das txt-file eingehält.
(Wir befinden uns in dem für die Bearbeitung der AJAX-Funktion zuständigen PHP-Script)
$text = "lat lon title description icon iconSize iconOffset \n"
Das ist zunächst die nötige Definition der POI-Tabelle.
Dann konkatiniere ich diesen String mit einem kompletten Datensatz eines POIs, sprich:
$text .= $POI['Latitude']." ".$POI['Longitude']." Title One ".$POI['Content']." Ol_icon_blue_example.png 24,24 0,-24\n"
Damit klappts aber leider nicht >.<
Wenn ich das ganze so in ne txt file reinschreibe, gehts.... aber es könnte womöglich auch daran liegen, dass die Funktion für die Darstellung der Pois als Übergabeparameter NUR ein txtfile akzeptiert.... mein Ajax-call sieht so aus:
$.ajax({
type: "POST",
url: "showPOIsOnMap.php",
data: service,
success: function(poisformap){
alert(poisformap);
var pois = new OpenLayers.Layer.Text( "My Points",
{ locationoisformap,
projection: map.displayProjection
});
map.addLayer(pois);
},
error: function(poisformap){
alert("POI to map -> fail!")
}
});
ich übergehe jetzt mal den Punkt "data" und den rest, denn an der Stelle "alert(poisformap);" kommt das gewünschte raus... wenn ich da nochmal ein Wort drüber verlieren sollte, bitte anmerken.
Der wirklich spassige Teil ist der teil mit dem Aufruf zur Darstellung der POIs auf der Karte "new OpenLayers.Layer.Text". Hier übergebe ich der function mal NICHT das Textfile, sondern mal den konkatinierten String und HIER ist das Problem: es geht nicht... hat jemand dazu einen Denkanstoß, einen Ansatz oder gar eine Lösung?
Mein zweiteres Problem ist: Wenn ich das mit dem Textfile mache, so muss ich den Ajax-Call 2mal losschicken, dann erst kriege ich die POIs angezeigt :/... also das ist jetzt ne dumme Vermutung, aber ich habe mir gedacht, dass die Ajax-Funktion fertig ist, ehe das txt-file steht und ich daher noch nix zurück bekomme... und er das dann bestehende file beim 2ten mal tatsächlich laden kann... wobei die ajax-funktion ja eigentlich erst dann anspringt, wenn alles geladen ist.. oder?... aber naja... ich bin n nap und daher will ich da mal nichts vom Zaun reissen. Ich hoffe, mir kann jemand helfen, ich hab gerade irgendwie keinen anderne PLan, auch wenn ich weiter nach Tutorials forste...
Vielen Dank
Lok33
ich habe ein sehr nerviges Problemchen, wie am Threadthema bereits erkennbar, handelt es sich um ein Problem mit OpenStreetMaps / OpenLayers.. mal wieder. Ich arbeite gerade mit PhP auf Serverseite ( derzeit mit XAMPP simuliert ) und Javascript.
Ich möchte gerne auf einem bereits bestehenden map-Layer einen weiteren Layer für POIs ( Points of Interest ) auflegen, auf welchem ich über Ajax selbige projeziere. Ich habe diesbezüglich 2 Tutorials gefunden:
1. Openlayers POI layer example - OpenStreetMap Wiki
2. OpenLayers Dynamic POI - OpenStreetMap Wiki
Zweiteres ist vermutlich eher, was ich suche ( der Screenshot deutet zumindest das richtige an ), aber ich steige dort beim besten Willen nicht durch und die Links führen auch ins Nirvana :/.
Ersteres habe ich soweit einmal probiert und es hat geklappt. Dabei wird txt-file geschrieben, in welches die Punkte nacheinander in bestimmter Reihenfolge ihrer Angaben ( Längen / Breitengrad,Bild,etc... ) eingetragen werden und dann von der Funktion ausgelesen und bearbeitet werden. Ich habe das ganze mal mit Ajax "dynamisch" gemacht, aber hmmmm:
Meine Probleme an der Stelle sind 2erlei:
Erstens möchte ich eigentlich ungern immer eine txt-Datei erstellen müssen wo ich den Kram reinlade. Ich habe schonmal versucht, die Textdatei zu "simulieren", indem ich einen großen String gebaut habe, der mMn die Restriktionen für das txt-file eingehält.
(Wir befinden uns in dem für die Bearbeitung der AJAX-Funktion zuständigen PHP-Script)
$text = "lat lon title description icon iconSize iconOffset \n"
Das ist zunächst die nötige Definition der POI-Tabelle.
Dann konkatiniere ich diesen String mit einem kompletten Datensatz eines POIs, sprich:
$text .= $POI['Latitude']." ".$POI['Longitude']." Title One ".$POI['Content']." Ol_icon_blue_example.png 24,24 0,-24\n"
Damit klappts aber leider nicht >.<
Wenn ich das ganze so in ne txt file reinschreibe, gehts.... aber es könnte womöglich auch daran liegen, dass die Funktion für die Darstellung der Pois als Übergabeparameter NUR ein txtfile akzeptiert.... mein Ajax-call sieht so aus:
$.ajax({
type: "POST",
url: "showPOIsOnMap.php",
data: service,
success: function(poisformap){
alert(poisformap);
var pois = new OpenLayers.Layer.Text( "My Points",
{ locationoisformap,
projection: map.displayProjection
});
map.addLayer(pois);
},
error: function(poisformap){
alert("POI to map -> fail!")
}
});
ich übergehe jetzt mal den Punkt "data" und den rest, denn an der Stelle "alert(poisformap);" kommt das gewünschte raus... wenn ich da nochmal ein Wort drüber verlieren sollte, bitte anmerken.
Der wirklich spassige Teil ist der teil mit dem Aufruf zur Darstellung der POIs auf der Karte "new OpenLayers.Layer.Text". Hier übergebe ich der function mal NICHT das Textfile, sondern mal den konkatinierten String und HIER ist das Problem: es geht nicht... hat jemand dazu einen Denkanstoß, einen Ansatz oder gar eine Lösung?
Mein zweiteres Problem ist: Wenn ich das mit dem Textfile mache, so muss ich den Ajax-Call 2mal losschicken, dann erst kriege ich die POIs angezeigt :/... also das ist jetzt ne dumme Vermutung, aber ich habe mir gedacht, dass die Ajax-Funktion fertig ist, ehe das txt-file steht und ich daher noch nix zurück bekomme... und er das dann bestehende file beim 2ten mal tatsächlich laden kann... wobei die ajax-funktion ja eigentlich erst dann anspringt, wenn alles geladen ist.. oder?... aber naja... ich bin n nap und daher will ich da mal nichts vom Zaun reissen. Ich hoffe, mir kann jemand helfen, ich hab gerade irgendwie keinen anderne PLan, auch wenn ich weiter nach Tutorials forste...
Vielen Dank
Lok33